package com.example.designmode.adapter.objectadpter

import com.example.designmode.adapter.classadapter.Computer
import com.example.designmode.adapter.classadapter.SDCardImpl
import com.example.designmode.adapter.classadapter.TFCardImpl
import org.junit.Test


/**
 * 读卡器
 * 现在有一台电脑，只能读取SD卡中的内容，而要读取TF卡中的
 * 内容，需要一个读卡器，将TF卡中的内容读取出来
 * 对象适配器模式
 *
 * @author zhouronghua
 * @time 2022/3/10 10:50 下午
 */
class Client {

    @Test
    fun testAdapter() {
        val computer = Computer()
        val sdCard = SDCardImpl()
        computer.readSDCard(sdCard)
        computer.writeSDCard(sdCard, "我是SD卡")
        println("测试通过对象适配器")
        // 通过对象适配器从TF卡读取内容
        val tfCard = TFCardImpl()
        val adapter = SDCardObjectAdapterImpl(tfCard)
        computer.readSDCard(adapter)
        computer.writeSDCard(adapter, "我是TF适配器")
    }
}